Bose-Chaudhuri-Hochquenghem (BCH) codes are a generalized form of Hamming code often employed in data correction circuits. Typically, these data correction circuits have a data path including a syndrome generator, a locator polynomial generator, a search module, and a correction module. The syndrome generator generates syndromes based on a data unit, and the locator polynomial generator generates a locator polynomial based on the syndromes. The search module locates data bit errors in the data unit by analyzing each root of the locator polynomial. In turn, the correction module corrects the data bit errors in the data unit.
Because the search module has a relatively long propagation delay in comparison to other components in the data path, the search module often acts as a bottleneck for data flow in a data correction circuit. As a result, data throughput of the data correction circuit is constrained by the search module. Moreover, some devices include data channels that compete for access to the data correction circuit. Although these devices have been successful in correcting data bit errors that occur infrequently among the data channels, the data correction circuit acts as a bottleneck for data flow in these devices when data bit errors occur simultaneously in multiple data bit channels. As a result, data throughput is reduced in these devices when data bit errors occur simultaneously in multiple data bit channels. To increase throughput when data bit errors occur simultaneously among multiple data channels, some devices employ multiple independent data correction circuits accessible to the data channels. Although this approach alleviates the bottleneck in a single data correction circuit, the use of multiple data correction circuits in a device increases size and power consumption of the device.